<?php

namespace App\Http\Controllers\Admin;


use App\Model\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\Facades\Validator;

class IndexController extends CommonController
{
     //登录后的初始页面
    public function index()
    {
        return view('admin.index');
    }

    public function info()
    {
        return view('admin.info');
    }

    //更改超级管理员密码
    public function pass()
    {
        //判断密码是否相同
        if($input = Input::all()){
            //验证规则
            $rules = [
               'password'=>'required|between:6,20|confirmed',      //必填+ 字数 + 判断是否一致
            ];
            $message =[
                'password.required'=>'新密码不能为空',  //指向提示信息
                'password.between'=>'新密码必须在6-20位之间！',  //密码位数
                'password.confirmed'=>'密码确认不一致',  //密码确认
            ];

            //验证方法 字段，规则，自定义提示信息
            $validator = Validator::make($input,$rules,$message);
            //判断验证成功失败
            if($validator->passes()){
               //判断数据库是否一致
                $user= User::first();
                $_password = Crypt::decrypt($user->user_pass);      //解析原密码
                //echo $_password;
                //判断等于解析出的原密码
                //正确的话 【旧密码和数据库一致，并且不等于新密码】
                if($input['password_o']==$_password && $input['password_o']!=$input['password']){
                    $user->user_pass =Crypt::encrypt($input['password']);
                    $user->update();
                    //return redirect('admin/info');      //修改完成后跳转页面
                    return back()->withErrors('密码修改成功！');

                    //旧密码和新密码一致
                }elseif($input['password_o']==$input['password']){
                    return back()->withErrors('新旧密码不能相同！');
                }else{
                    return back()->withErrors('原密码错误！');
                }

                // echo 'yes';
            }else{
                //不通过
                echo 'no';
               //返回错误信息:withErrors(参数)
               return back()->withErrors($validator);
                //显示错误信息的方法
               // dd($validator->errors()->all());

            }


            //测试
            //dd($input);
        }else{
            return view('admin.pass');

        }
        //

    }
    
}
